# 类方法使用装饰器@classmethod。第一个参数必须是当前类对象，该参数名一般约定为“cls”（不是cls也没关系，但是，约定俗成的东西不建议变动），
# 通过它来传递类的属性和方法（不能传实例的属性和方法）；其调用对象可以是实例对象和类
# # 定义Person类
# class Person():
#     total = 1
#
#     @classmethod
#     def print_total(cls):
#         cls.total += 1
#         print(cls.total)
#
#
# # 类调用
# Person.print_total()
# # 实例对象调用（不建议）
# person = Person()
# person.print_total()


# 静态方法：使用装饰器@staticmethod。参数随意，没有“self”和“cls”参数，但是方法体中不能使用类或实例的任何属性和方法
# 静态方法是类中的函数，不需要实例，静态方法主要是用来存放逻辑性的代码，逻辑上属于类，但是和类本身没有关系，也就是说在静态方法中，不会涉及到类中的属性和方法的操作，可以理解为：静态方法是个独立的、单纯的函数，它仅仅托管于某个类的名称空间中，便于使用和维护


# class Person():
#
#
#     @staticmethod
#     def print_hello():
#         print("hello world")
#
#
# Person.print_hello()

# 实例方法：与具体实例相关，用于操作实例变量
# 类方法：与类相关，用于操作类变量，虽然实例可以直接调用，但是不建议通过实例调用
# 静态方法：与类和具体的实例无关，相当于一个独立的函数，只是依托于类的命名空间内
















